Java : Memory Consistency and Process Coordination � ( Extended
نویسندگان
چکیده
In Java, some memory updates are necessarily visible to some threads but never to others. A definition of Java memory consistency must take this fact into consideration to capture the semantics of non-terminating systems, such as a Java operating system. This paper presents a programmer-centered formal definition of Java memory behavior that captures those semantics. Our definition is employed to prove that it is impossible to provide fundamental process coordination in Java, such as critical sections and producer/consumer coordination, without the use of the / 0 / # 1 2 3 and 4 0 # 2 constructs. However, we introduce a form of synchronization that is weaker than 4 0 # 2 s and would suffice to solve some of these problems in Java. keywords: Java, Java Virtual Machine, memory consistency models, process coordination, critical section problem, producer/consumer problem, non-terminating systems.
منابع مشابه
Java: Memory Consistency and Process Coordination
In Java, some memory updates are necessarily visible to some threads but never to others. A definition of Java memory consistency must take this fact into consideration to capture the semantics of non-terminating systems, such as a Java operating system. This paper presents a programmer-centered formal definition of Java memory behavior that captures those semantics. Our definition is employed ...
متن کاملCharacterization for Java Memory Behavior
We provide non-operational characterizations of Java memory consistency model (Java Consistency, or simply Java). The work is based on the operational definition of the Java memory consistency as given in the Java Language Specification [6]. We study the relation of Java memory behavior to that of some well known models, proving that Java is incomparable with PRAM Consistency and with both vari...
متن کاملConcurrent Constraint-Based Memory Machines: A Framework for Java Memory Models
A central problem in extending the von Neumann architecture to petaflop computers with millions of hardware threads and with a shared memory is defining the memory model [Lam79,AG95,APP99]. Such a model must specify the behavior of concurrent (conditional) reads and writes to the same memory locations. We present a simple, general framework for the specification of memory models based on an abs...
متن کاملDesign and Performance Analysis of a Distributed Java Virtual Machine
ÐThis paper introduces DISK, a distributed Java Virtual Machine for networks of heterogenous workstations. Several research issues are addressed. A novelty of the system is its object-based, multiple-writer memory consistency protocol (OMW). The correctness of the protocol and its Java compliance is demonstrated by comparing the nonoperational definitions of Release Consistency, the consistency...
متن کاملSequential Consistency for Heterogeneous-Race-Free Programmer-centric Memory Models for Heterogeneous Platforms
Hardware vendors now provide heterogeneous platforms in commodity markets (e.g., integrated CPUs and GPUs), and are promising an integrated, shared memory address space for such platforms in future iterations. Because not all threads in a heterogeneous platform can communicate with the same latency, vendors are proposing synchronization mechanisms that allow threads to communicate with a subset...
متن کامل